home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.5)
-
- import app
- import frontend
- import os
- import util
- import config
- import prefs
- from download_utils import nextFreeFilename
- from xpcom import components
- from threading import Lock
- import frontend
- import time
- selectItemLock = Lock()
-
- class PlaybackController(app.PlaybackControllerBase):
-
- def playItemExternally(self, itemID):
- item = app.PlaybackControllerBase.playItemExternally(self, itemID)
- moviePath = ''
-
- try:
- moviePath = os.path.normpath(item.getVideoFilename())
- os.startfile(moviePath)
- except:
- print 'DTV: movie %s could not be externally opened' % moviePath
-
-
-
-
- class VideoDisplay(app.VideoDisplayBase):
- """Video player shown in a MainFrame's right-hand pane."""
-
- def initRenderers(self):
- self.renderers.append(VLCRenderer())
-
-
- def setArea(self, area):
- pass
-
-
- def removedFromArea(self):
- pass
-
-
- def goFullScreen(self):
- return frontend.vlcRenderer.goFullscreen(url)
-
-
- def exitFullScreen(self):
- return frontend.vlcRenderer.exitFullScreen(url)
-
-
- def setVolume(self, volume, moveSlider = True):
- app.VideoDisplayBase.setVolume(self, volume)
- frontend.vlcRenderer.setVolume(self.volume)
- if moveSlider:
- frontend.jsBridge.positionVolumeSlider(self.volume)
-
-
-
- def fillMovieData(self, filename, movie_data, callback):
- print 'fillMovieData (%s)' % (filename,)
- movie_data['screenshot'] = u''
- self.movie_data = movie_data
- self.callback = callback
- frontend.vlcRenderer.extractMovieData(filename, movie_data['screenshot'])
-
-
- def extractFinish(self, duration, screenshot_success):
- print 'extractFinish (%d, %s)' % (duration, screenshot_success)
- self.movie_data['duration'] = int(duration)
- if screenshot_success:
- self.movie_data['screenshot'] = u''
- else:
- self.movie_data['screenshot'] = None
- self.callback()
-
-
-
- def lockAndPlay(func):
-
- def locked(*args, **kwargs):
- selectItemLock.acquire()
-
- try:
- ret = func(*args, **kwargs)
- time.sleep(1)
- return ret
- finally:
- selectItemLock.release()
-
-
- return locked
-
-
- class VLCRenderer(app.VideoRenderer):
- '''The VLC renderer is very thin wrapper around the xine-renderer xpcom
- component.
- '''
-
- def canPlayFile(self, filename):
- url = util.absolutePathToFileURL(filename)
- return frontend.vlcRenderer.canPlayURL(url)
-
-
- def selectFile(self, filename):
- url = util.absolutePathToFileURL(filename)
- return frontend.vlcRenderer.selectURL(url)
-
- selectFile = lockAndPlay(selectFile)
-
- def setVolume(self, volume):
- return frontend.vlcRenderer.setVolume(volume)
-
-
- def reset(self):
- return frontend.vlcRenderer.reset()
-
- reset = lockAndPlay(reset)
-
- def play(self):
- return frontend.vlcRenderer.play()
-
- play = lockAndPlay(play)
-
- def pause(self):
- return frontend.vlcRenderer.pause()
-
-
- def stop(self):
- return frontend.vlcRenderer.stop()
-
- stop = lockAndPlay(stop)
-
- def goToBeginningOfMovie(self):
- return frontend.vlcRenderer.goToBeginningOfMovie()
-
-
- def getDuration(self):
- return frontend.vlcRenderer.getDuration()
-
-
- def getCurrentTime(self):
-
- try:
- return frontend.vlcRenderer.getCurrentTime()
- except:
- return None
-
-
-
- def setCurrentTime(self, time):
- return frontend.vlcRenderer.setCurrentTime(time)
-
-
- def playFromTime(self, time):
- return frontend.vlcRenderer.playFromTime(time)
-
- playFromTime = lockAndPlay(playFromTime)
-
- def getRate(self):
- return frontend.vlcRenderer.getRate()
-
-
- def setRate(self, rate):
- return frontend.vlcRenderer.setRate(rate)
-
-
- def movieDataProgramInfo(self, videoPath, thumbnailPath):
- moviedata_util_filename = 'Miro_MovieData.exe'
- cmdLine = [
- moviedata_util_filename,
- videoPath,
- thumbnailPath]
- return (cmdLine, None)
-
-
-